<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>main</title>
    <link rel="stylesheet" href="layui/css/layui.css">
    <script src="layui/layui.js"></script>
    <style>
        .layui-tab-content {
            padding: 0;/*layui-tab-content:默认有padding: 10px;的值，因为iframe的绝对定位脱离文档流，所以会存在20px的空白空间*/
        }
        .show-frame {
            top: 50px!important;
            /*默认.layui-layout-admin .layui-body {
                top: 60px;
                bottom: 44px;
            }*/
            overflow: hidden;/*消除浏览器最右边的滚动条*/
        }
        .frame {
            position: absolute;
            padding: 10px;/*与layui-footer隔开一段距离*/
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
    <div class="layui-header">
        <div class="layui-logo">layui 后台布局</div>
        <!-- 头部区域（可配合layui已有的水平导航） -->
        <ul class="layui-nav layui-layout-left">
            <li class="layui-nav-item"><a href="">控制台</a></li>
            <li class="layui-nav-item"><a href="">商品管理</a></li>
            <li class="layui-nav-item"><a href="">用户</a></li>
            <li class="layui-nav-item">
                <a href="javascript:;">其它系统</a>
                <dl class="layui-nav-child">
                    <dd><a href="">邮件管理</a></dd>
                    <dd><a href="">消息管理</a></dd>
                    <dd><a href="">授权管理</a></dd>
                </dl>
            </li>
        </ul>
        <ul class="layui-nav layui-layout-right">
            <li class="layui-nav-item">
                <a href="javascript:;">
                    <img src="http://t.cn/RCzsdCq" class="layui-nav-img">
                    贤心
                </a>
                <dl class="layui-nav-child">
                    <dd><a href="">基本资料</a></dd>
                    <dd><a href="">安全设置</a></dd>
                </dl>
            </li>
            <li class="layui-nav-item"><a href="">退了</a></li>
        </ul>
    </div>

    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左侧导航区域（可配合layui已有的垂直导航） -->
            <ul class="layui-nav layui-nav-tree"  lay-filter="test">
                <!--这里面的li和a、dl、dd等标签内容是以后显示的左侧导航内容  这些内容是自己定义的
                    开发技巧：给这些导航添加三个属性 id  title  url（前两个是默认属性  url是自定义属性）
                    id属性是为了后续方便操作这个链接（即tab组件） title是这个组件打开后的标题名称
                    url是这个tab组件打开后的内容  这里用URL是引入一个HTML页面来当作其打开后的显示内容
                    这里为每一个导航超链接添加相同的class属性  是为了给它们统一绑定点击事件
                -->
                <li class="layui-nav-item layui-nav-itemed">
                    <a class="" href="javascript:;">所有商品</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;" id="1" title="demo1" url="demo1.html" class="a1">列表一</a></dd>
                        <dd><a href="javascript:;" id="2" title="demo2" url="demo2.html" class="a1">列表二</a></dd>
                        <dd><a href="javascript:;" id="3" title="demo3" url="demo3.html" class="a1">列表三</a></dd>
                        <dd><a href="">超链接</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">解决方案</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">列表一</a></dd>
                        <dd><a href="javascript:;">列表二</a></dd>
                        <dd><a href="">超链接</a></dd>
                    </dl>
            </ul>
        </div>
    </div>

    <div class="layui-body show-frame"><!--这个class属性中追加的show-frame值  是页面引入的style样式-->
        <!-- 内容主体区域  从layui文档的内置模块的常用元素操作中去找对应的HTML内容（即div布局）
            其中下面HTML中外层的div（<div class="layui-tab" lay-filter="demo">）中的lay-filter属性值是要用到的
            添加组件的方法：element.tabAdd(filter,{})
                            第一个参数：就是上面这个lay-filter的值
                            第二个参数是个对象{}：需要动态获取 根据点击的导航不同 显示的内容不同
                                                    这个就需要JS中this关键词的使用，以及attr（‘属性’）方法
                                                    获取当前标签对象内某个属性的值   这里用attr而不用prop的原因
                                                    是：prop只能获取当前标签中自带的属性的值，不能获取自定义属性的值
                            注意：下面的<div class="layui-tab" lay-allowClose="true" lay-filter="demo">标签中的：
                            lay-allowClose="true" 代表选中的这个tab组件是允许被关闭的
                            ul标签内的每一个li标签是和下面<div class="layui-tab-content">标签内的每一个div对应的
                            【一般第一个li标签和其对应的div保留着，将其余的删除掉，在后面的jQuery代码中动态获取要打开
                            的tab组件内容】
        -->
        <div class="layui-tab" lay-allowClose="true" lay-filter="demo">
            <ul class="layui-tab-title">
                <li class="layui-this">首页</li>
                <!--<li>商品管理</li>
                <li>订单管理</li>-->
            </ul>
            <div class="layui-tab-content">
                <div class="layui-tab-item layui-show">首页内容</div>
                <!--<div class="layui-tab-item">内容2</div>
                <div class="layui-tab-item">内容3</div>-->
            </div>
        </div>
    </div>

    <div class="layui-footer">
        <!-- 底部固定区域 -->
        © layui.com - 底部固定区域
    </div>
</div>
<script>
    //JavaScript代码区域   主要就是编写点击左侧导航时  右侧内容主题内显示对应的内容
    layui.use('element', function(){
        var element = layui.element;//元素功能的开启只需要加载element模块即会自动完成  无需再调用什么方法
        var $ = layui.$;
        //加载完element模块  就可以添加tab组件了
        //第一、给每一个要添加的tab组件（导航超链接）添加点击事件
        $('.a1').click(function () {
            //用JS中的this关键字  代码所点击的那一行导航标签内容
            var id = $(this).attr('id');
            var title = $(this).attr('title');
            var url = $(this).attr('url');
            //第二、判断当前点击的tab组件是否已经打开  若是则不重复打开  而是切换到该tab组件对应的内容
            if($('li[lay-id='+id+']').length==0){
                //用选择器选择li标签中lay-id属性为当前id的标签 若其对应的tab组件没打开则其长度为0
                //然后，执行element模块的tabAdd方法   添加对应的tab组件
                element.tabAdd('demo',{
                    title:title,
                    //content是要打开的tab组件显示的内容 class属性frame是我们给该iframe标签自定义的一个属性值
                    //scrolling="no" 代表取消该iframe的滚动条    frameborder="0"取消该iframe的边框
                    //src属性值也是动态拼接获取的  是指要打开的内容是哪个HTML
                    content:'<iframe class="frame" scrolling="no" frameborder="0" src="'+url+'"></iframe>',
                    id:id
                })
            }
            //第三、设置打开该tab组件时自动切换到该tab组件对应的内容
            // 注1:这个一定要写在if判断外面  要不然在该tab打开的时候就不起作用了
            /*注2：这个方法的参数1：也是指右侧主题内容的最外层div中lay-filter属性值
                                    即<div class="layui-tab" lay-filter="demo">
                            参数2：选中的当前tab组件中的lay-id属性值
             */
            element.tabChange('demo',id);
        })
    });
</script>
</body>
</html>